<?php
// 这是验证session的代码。
namespace App\Http\Controllers\Auth;

use Illuminate\Http\Request;
use App\Http\Controllers\Controller;
use Illuminate\Support\Facades\Auth;

class SessionController extends Controller
{
    public function validateSession(Request $request)
    {
        try {
            // 不使用 auth:api 中间件，而是直接检查用户是否已登录  
            if (Auth::check()) {
                // 验证成功，用户已登录  
                // 你可以通过 Auth::user() 来访问用户对象  
                $user = Auth::user();
                return response()->json(['message' => '验证成功,会话有效。', 'user' => $user], 200);
            }

            // 验证失败，用户未登录  
            return response()->json(['message' => '会话无效。'], 401);
        } catch (\Exception $e) {
            // 捕获任何可能发生的异常  
            if (config('app.debug')) {
                // 如果是开发环境，返回详细的错误信息  
                return response()->json([
                    'message' => '服务器错误，请检查以下详细信息：',
                    'error' => [
                        'message' => $e->getMessage(), // 具体的错误消息  
                        'file' => $e->getFile(), // 错误发生的文件  
                        'line' => $e->getLine(), // 错误发生的行号  
                        'trace' => explode("\n", $e->getTraceAsString()), // 完整的堆栈跟踪  
                    ],
                ], 500);
            } else {
                // 如果是生产环境，只返回一般的错误信息  
                return response()->json([
                    'message' => '服务器错误，请稍后再试。',
                    'error' => '内部服务器错误' // 一般的错误消息，不透露具体细节  
                ], 500);
            }

            // 你还可以选择在这里记录错误日志  
            // \Log::error('Server error: ' . $e->getMessage());  
        }
    }
}
